import pandas as pd
import numpy as np
# 创建包含北京、天津和内蒙古近几年GDP数据的DataFrame
data = {
    '北京': [40269.55, np.nan, 43760.70],    # 2022年缺失
    '天津': [np.nan, 16132.16, 17211.79],    # 2021年缺失
    '内蒙古': [19040.7, 20300.0, np.nan]     # 2023年缺失
}
index = [2021, 2022, 2023]
df = pd.DataFrame(data, index=index)

# 以下为Ch08-11.1部分
# 前向填充：用前一年数据补缺
ffill_df = df.ffill()
print("前向填充:")
print(ffill_df)
# 后向填充：用后一年数据补缺
bfill_df = df.bfill()
print("后向填充:")
print(bfill_df)
# 混合使用（先尝试前向，再后向）
mix_df = df.ffill().bfill()
print("混合使用:")
print(mix_df)

# 以下为Ch08-11.2部分（测试时请注释Ch08-11.1部分）
# 计算北京的年均增长率
growth_beijing = (df.loc[2023, '北京']  / df.loc[2021, '北京']) ** (1/2)
# 填充北京2022年数据
df_conditional = df.copy()
df_conditional.loc[2022, '北京'] = df.loc[2021, '北京'] * growth_beijing
print("基于增长率的填充结果:")
print(df_conditional)

